VisualVM 远程连接

VisualVM 远程连接

简介

VisualVM is a visual tool integrating commandline JDK tools and lightweight profiling capabilities.
Designed for both development and production time use.
谷歌翻译:VisualVM 是一个集成了命令行 JDK 工具和轻量级分析功能的可视化工具。 专为开发和生产时间使用而设计。

服务端

jstatd 授权文件 - jstatd.all.policy
jdk8
1
2
3
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
jdk9+
1
2
3
4
5
6
7
grant codebase "jrt:/jdk.jstatd" {
permission java.security.AllPermission;
};

grant codebase "jrt:/jdk.internal.jvmstat" {
permission java.security.AllPermission;
};
启动 jstatd tool
1
2
# -p 指定使用的端口,默认使用的是 1099 端口
jstatd -J-Djava.security.policy=<jstatd.all.policy文件的路径>/jstatd.all.policy -J-Djava.rmi.server.hostname=<对外暴露的主机ip> -p 1099
开放端口
  1. 1099 端口:jstatd 工具默认使用的是 1099 端口
  2. 其他:jstatd 工具还会使用一个端口,需要在运行期间查询获的。可通过 netstat 指令查询获取
1
2
3
4
> netstat -tanp | grep jstatd
tcp6 0 0 :::1099 :::* LISTEN 4046836/jstatd
tcp6 0 0 :::40499 :::* LISTEN 4046836/jstatd
tcp6 0 0 xx.xx.xx.xx:40499 xx.xx.xx.xx:60082 ESTABLISHED 4046836/jstatd

那么除了 1099 端口以外,还需要开放 40499 端口

注意:40499 端口是在 jstatd 运行之后查询获得的,每次重启 jstatd 都可能会不一样

客户端

安装 VisualVm
1
2
# mac 环境
brew install visualvm
远程连接服务端

VisualVM远程连接

选择需要查看的 JVM 进程

选择 JVM 进程

查看 GC 情况

Visual GC

CPU 内存指标

需要使用 JMX,使用 JMX 需要服务端的 JVM 应用开启相关配置

作者

wuhunyu

发布于

2024-02-28

更新于

2025-01-15

许可协议